]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
border-image: add support for scale factor
authorCosimo Cecchi <cosimoc@gnome.org>
Sun, 23 Mar 2014 03:43:35 +0000 (20:43 -0700)
committerCosimo Cecchi <cosimoc@gnome.org>
Fri, 28 Mar 2014 17:53:01 +0000 (10:53 -0700)
In a later commit we'll add support for rendering borders and
backgrounds with scale factor.

https://bugzilla.gnome.org/show_bug.cgi?id=726907

src/st/st-border-image.c
src/st/st-border-image.h
src/st/st-theme-node.c

index c55ee9b2086947d6297d3b8b1c372ea1fcaccbe7..a462bfd5c0b932c135d078265f4d91b3b0097a16 100644 (file)
@@ -32,6 +32,8 @@ struct _StBorderImage {
   int border_right;
   int border_bottom;
   int border_left;
+
+  int scale_factor;
 };
 
 struct _StBorderImageClass {
@@ -69,7 +71,8 @@ st_border_image_new (const char *filename,
                        int         border_top,
                        int         border_right,
                        int         border_bottom,
-                       int         border_left)
+                       int         border_left,
+                       int         scale_factor)
 {
   StBorderImage *image;
 
@@ -80,6 +83,7 @@ st_border_image_new (const char *filename,
   image->border_right = border_right;
   image->border_bottom = border_bottom;
   image->border_left = border_left;
+  image->scale_factor = scale_factor;
 
   return image;
 }
@@ -102,13 +106,13 @@ st_border_image_get_borders (StBorderImage *image,
   g_return_if_fail (ST_IS_BORDER_IMAGE (image));
 
   if (border_top)
-    *border_top = image->border_top;
+    *border_top = image->border_top * image->scale_factor;
   if (border_right)
-    *border_right = image->border_right;
+    *border_right = image->border_right * image->scale_factor;
   if (border_bottom)
-    *border_bottom = image->border_bottom;
+    *border_bottom = image->border_bottom * image->scale_factor;
   if (border_left)
-    *border_left = image->border_left;
+    *border_left = image->border_left * image->scale_factor;
 }
 
 /**
index f0941602e9d6efe481e807ddd827d7d500f98425..9b284d611d7d359f9b5186913a19083cffb6eab8 100644 (file)
@@ -43,7 +43,8 @@ StBorderImage *st_border_image_new (const char *filename,
                                     int         border_top,
                                     int         border_right,
                                     int         border_bottom,
-                                    int         border_left);
+                                    int         border_left,
+                                    int         scale_factor);
 
 const char *st_border_image_get_filename (StBorderImage *image);
 void        st_border_image_get_borders  (StBorderImage *image,
index 68aea172830c7128054c497833ddec41311dc016..16f247a3a170959e04d4b9a1794bd9ac897d5a5d 100644 (file)
@@ -2864,6 +2864,7 @@ StBorderImage *
 st_theme_node_get_border_image (StThemeNode *node)
 {
   int i;
+  int scale_factor;
 
   if (node->border_image_computed)
     return node->border_image;
@@ -2872,6 +2873,7 @@ st_theme_node_get_border_image (StThemeNode *node)
   node->border_image_computed = TRUE;
 
   ensure_properties (node);
+  g_object_get (node->context, "scale-factor", &scale_factor, NULL);
 
   for (i = node->n_properties - 1; i >= 0; i--)
     {
@@ -2978,7 +2980,8 @@ st_theme_node_get_border_image (StThemeNode *node)
             goto next_property;
 
           node->border_image = st_border_image_new (filename,
-                                                    border_top, border_right, border_bottom, border_left);
+                                                    border_top, border_right, border_bottom, border_left,
+                                                    scale_factor);
 
           g_free (filename);